Skip to content

fix(distribution): install DSH plugin without build scripts - #86

Merged
adoresever merged 1 commit into
mainfrom
fix/dsh-install-without-build-scripts
Aug 25, 2026
Merged

fix(distribution): install DSH plugin without build scripts#86
adoresever merged 1 commit into
mainfrom
fix/dsh-install-without-build-scripts

Conversation

@adoresever

Copy link
Copy Markdown
Owner

Root cause

The Hub cannot find a DSH-compatible npm release, so it correctly falls back to a Git dependency. That exposed two independent install-time script boundaries:

  1. graph-memory used prepare to compile TypeScript after a Git fetch.
  2. @photostructure/sqlite used a native install lifecycle even when consuming prebuilt tarballs.

pnpm 11 rejects both unless every user mutates the profile allowBuilds policy. Fixing only one still leaves installation broken.

Systemic fix

  • use Node 22 built-in node:sqlite, the same runtime boundary used by current DSH;
  • centralize SQLite ownership behind src/store/sqlite.ts;
  • remove all install-time lifecycle scripts and native runtime dependencies;
  • commit the small generated dist runtime so GitHub installs load prebuilt code;
  • keep prepack for release builds;
  • add a reusable package verification gate that rejects install lifecycles, runtime dependencies with install scripts, missing packed entries, and stale generated output;
  • update installation docs and bump the beta to 1.6.0-beta.9.

Verification

  • 17 test files / 130 tests pass;
  • TypeScript and DSH builds pass;
  • package verification reports 75 packed files and no install-time scripts;
  • real pnpm 11.7.0 plus a fresh DSH Web profile installs directly from a Git commit without creating allowBuilds;
  • DSH discovers graph-memory/dsh, loads the plugin, and creates the Graph Memory database.

Closes #82
Closes #83
Closes #84

Use the Node 22 SQLite runtime shared by DSH and OpenClaw, remove native install-time scripts, and ship verified generated output so Git installs do not require pnpm allowBuilds. Add a reusable package verification gate for lifecycle scripts, required artifacts, and stale dist files.\n\nFixes #82\nFixes #83\nFixes #84
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

1 participant